Matching Local Image Feature Descriptors in Image Analysis

ABSTRACT

A method of feature matching in images captured from camera viewpoints uses the epipolar geometry of the viewpoints to define a geometrically-constrained region in a second image corresponding to a first feature in a first image; comparing the local descriptor of the first feature with local descriptors of features in the second image to determine respective measures of similarity; identifying, from the features located in the geometrically-constrained region, (i) a geometric best match and (ii) a geometric next-best match to the first feature; identifying a global best match to the first feature; performing a first comparison of the measures of similarity for the geometric best match and the global best match; performing a second comparison of the measures of similarity for the geometric best match and the geometric next-best match; and, if thresholds are met, selecting the geometric best match feature in the second image.

CROSS-REFERENCE TO RELATED APPLICATIONS AND CLAIM OF PRIORITY

This application is a continuation under 35 U.S.C. 120 of copendingapplication Ser. No. 17/108,145 filed Dec. 1, 2020, now U.S. Pat. No.11,756,222, which is a continuation of prior application Ser. No.16/376,003 filed Apr. 5, 2019, now U.S. Pat. No. 10,885,376, whichclaims foreign priority under 35 U.S.C. 119 from United KingdomApplication No. 1805688.7 filed Apr. 5, 2018, the contents of which areincorporated herein by reference in their entirety.

BACKGROUND

The present disclosure relates to a method and data processing systemfor matching features identified in images captured from cameraviewpoints related by an epipolar geometry.

Many image processing systems are able to match features in one image tofeatures in another image. To give just two examples, camera pipelinesmay perform feature matching in a sequence of images captured by acamera so as to enable autofocus points to track objects in the scene asthe camera moves relative to the scene, and stereoscopic camera systemsmay perform feature matching in a pair of images captured by a pair ofcameras so as to identify corresponding features and so enable depthinformation to be extracted from the combined images.

Various feature detection algorithms—sometimes termed saliencyfunctions—exist to identify features suitable for tracking betweenimages. Often such algorithms are used to detect high contrast featuresin an image which are well localised and so more reliably identifiedthan areas of low contrast. In particular, high contrast features aremore likely to be consistently identified in images of a scene as theviewpoint of one or more cameras capturing the scene changes. In orderto identify high contrast features, algorithms may be used which performedge and/or corner detection in the pixel data of an image.

Selected features may be conveniently described by a local descriptor(or “feature descriptor”), which typically provides a compactrepresentation of the key visual characteristics of a feature in amanner that facilitates comparing and matching of features in anefficient way. For example, a feature descriptor may be a representationof the contrast in the pixels making up the feature. A local descriptoris formed through some transformation of the local image region aroundthe feature point. Various algorithms exist for generating localdescriptors from pixel data comprised in a feature. For example, localdescriptors may be formed according to algorithms for generating SIFT(Scale Invariant Feature Transform) or SURF (Speeded-Up Robust Features)descriptors, or binary descriptors such as BRISK (Binary RobustInvariant Scalable Keypoint) or BRIEF (Binary Robust ElementaryFeatures) descriptors. Local descriptors are often expressed as vectors(in “descriptor space”) whose elements describe the variation in avisual characteristic of the represented feature.

Local descriptors facilitate efficient comparison of features indifferent images in order to assess whether those features maycorrespond to the same real-world point in the scene captured by theimages. For example, a local descriptor for a feature from one image maybe compared to the respective local descriptor for each of the featuresof a second image so as to form a descriptor distance for each featurepairing indicative of the similarity between the respective localdescriptors and hence the features they represent. A comparison of twolocal descriptors may involve performing a vector subtraction indescriptor space of one local descriptor from the other, wherein asmaller descriptor distance (e.g. a smaller magnitude of the resultingvector in descriptor space) is indicative of a closer match between thefeatures represented by the local descriptors.

The matching process can be error prone, even when using the bestdetection and local description methods.

SUMMARY

This summary is provided to introduce a selection of concepts that arefurther described below in the detailed description. This summary is notintended to identify key features or essential features of the claimedsubject matter, nor is it intended to be used to limit the scope of theclaimed subject matter.

There is provided a computer-implemented method of matching featuresidentified in first and second images captured from respective cameraviewpoints related by an epipolar geometry, each identified featurebeing described by a local descriptor, the method comprising:

-   -   using the epipolar geometry to define a        geometrically-constrained region in the second image        corresponding to a first feature in the first image represented        by a first local descriptor;    -   comparing the first local descriptor with local descriptors of        features in the second image, thereby determining respective        measures of similarity between the first feature in the first        image and the respective features in the second image;    -   identifying, from the features located in the        geometrically-constrained region in the second image, (i) a        geometric best match feature to the first feature, and (ii) a        geometric next-best match feature to the first feature;    -   identifying, from any of the features in the second image, a        global best match feature to the first feature;    -   performing a first comparison of the measures of similarity        determined for the geometric best match feature and for the        global best match feature, with respect to a first threshold;    -   performing a second comparison of the measures of similarity        determined for the geometric best match feature and for the        geometric next-best match feature, with respect to a second        threshold; and    -   in dependence on whether the first and second thresholds are        satisfied, selecting the geometric best match feature in the        second image as an output match to the first feature in the        first image.

The selecting may comprise not providing an output match if either thefirst or second threshold is not satisfied.

The first threshold may be satisfied when, according to their respectivesimilarity measures, the geometric best match feature is not worse thanthe global best match feature as a match to the first feature by anamount defined by a first predefined factor.

The second threshold may be satisfied when, according to theirrespective similarity measures, the geometric best match feature isbetter than the geometric next-best match feature as a match to thefirst feature by an amount defined by a second predefined factor.

Performing the first and second comparisons may comprise calculatingfirst and second ratios of the magnitudes of the respective measures ofsimilarity, the first and second thresholds being satisfied if therespective ratios satisfy the first and second thresholds, respectively.

Comparing the first local descriptor with local descriptors of featuresin the second image may comprise forming descriptor distances betweenthe first local descriptor and the respective local descriptor for eachof said features in the second image, and the identifying geometric bestmatch and next-best match features may comprise identifying the shortestand next-shortest descriptor distances corresponding to features in thegeometrically-constrained region in the second image.

The identifying the global best match feature may comprise identifyingthe shortest descriptor distance between the first local descriptor andthe local descriptors of features in the second image not limited tothose features lying in the geometrically-constrained region.

Each measure of similarity determined may be a descriptor distancebetween the first local descriptor and the local descriptor of therespective feature of the second image.

Each local descriptor may be a vector representing characteristics ofpixels of the respective feature and determining each descriptordistance may comprise performing a vector subtraction between therespective local descriptors and determining the magnitude of theresulting vector.

Each feature may be represented by a point and the local descriptor ofeach feature may be formed in dependence on pixels local to the point inthe respective image.

Using the epipolar geometry to define a geometrically-constrained regionin the second image may comprise using the epipolar geometry to derivean epipolar line or area in the second image corresponding to the firstfeature in the first image, wherein the epipolar line or area is used todefine the geometrically-constrained region.

The geometrically-constrained region may comprise all pixels of thesecond image within a predefined distance of the epipolar line or area.

The predefined distance may be determined in dependence on one or moremeasures of error in the epipolar geometry.

The predefined distance may be a predefined perpendicular distance tothe epipolar line or boundary of the epipolar area which varies withposition in the respective image in dependence on the epipolar geometry.

The geometrically-constrained region may be the epipolar line or area.

Each feature may represent a localised set of pixels in the respectiveimage and a feature may be determined to be located in thegeometrically-constrained region using one of more of the followingdeterminations: determining whether any pixel represented by the featurelies in the geometrically-constrained region; determining whether one ormore predetermined pixels represented by the feature lie in thegeometrically-constrained region; determining whether a predeterminedproportion of pixels represented by the feature lie in thegeometrically-constrained region.

The method may further comprise:

-   -   receiving camera data identifying limits on the viewable range        from one or both of the camera viewpoints; and    -   processing the camera data so as to identify bounds on the        geometrically-constrained region in the second image in        accordance with the epipolar geometry.

The camera data may comprise for one or both camera viewpoints: depthinformation indicating nearest and/or furthest regions viewable from thecamera viewpoint; field of view information indicating regions viewablefrom the camera viewpoint; a view frustum for the camera viewpoint; anddata indicating regions in front of and/or behind the camera viewpoint.

The epipolar geometry may be used to derive an epipolar line and themethod may further comprise transforming the coordinate system of thesecond image so as to map the epipolar line parallel to one of thecoordinate axes and, subsequently in the transformed coordinate system,identifying the features located in the geometrically-constrained regionin the second image.

The method may further comprise:

-   -   using the epipolar geometry to define a second        geometrically-constrained region in the first image        corresponding to the geometric best match feature in the second        image;    -   comparing the local descriptor of the geometric best match        feature with local descriptors of features in the first image,        thereby determining respective measures of similarity between        the first feature in the first image and the respective features        in the second image;    -   identifying, from the features located in the second        geometrically-constrained region in the first image, (i) a        second geometric best match feature to the geometric best match        feature of the second image, and (ii) a second geometric        next-best match feature to the geometric best match feature of        the second image;    -   identifying, from any of the features in the first image, a        second global best match feature to the geometric best match        feature of the second image;    -   performing a first comparison of the measures of similarity        determined for the second geometric best match feature and for        the second global best match feature, with respect to the first        threshold;    -   performing a second comparison of the measures of similarity        determined for the second geometric best match feature and for        the second geometric next-best match feature, with respect to        the second threshold; and    -   in dependence on whether the first and second thresholds are        satisfied, confirming the geometric best match feature in the        second image as the output match to the first feature in the        first image.

Different cameras may capture the images from the respective cameraviewpoints.

The same camera at different camera positions may capture the imagesfrom the respective camera viewpoints.

There is provided a data processing system for matching featuresidentified in first and second images captured from respective cameraviewpoints related by an epipolar geometry, each identified featurebeing described by a local descriptor, the data processing systemcomprising:

-   -   a geometry unit configured to use the epipolar geometry to        define a geometrically-constrained region in the second image        corresponding to a first feature in the first image represented        by a first local descriptor;    -   a comparison unit configured to compare the first local        descriptor with local descriptors of features in the second        image thereby determining respective measures of similarity        between the first feature in the first image and the respective        features in the second image; and    -   a match unit configured to:        -   identify, from the features located in the            geometrically-constrained region in the second image, (i) a            geometric best match feature to the first feature, and (ii)            a geometric next-best match feature to the first feature;    -   identify, from any of the features in the second image, a global        best match feature to the first feature;        -   perform a first comparison of the measures of similarity            determined for the geometric best match feature and for the            global best match feature, with respect to a first            threshold;        -   perform a second comparison of the measures of similarity            determined for the geometric best match feature and for the            geometric next-best match feature, with respect to a second            threshold; and        -   in dependence on whether the first and second thresholds are            satisfied, select the geometric best-match feature in the            second image as an output match to the first feature in the            first image.

The match unit may be configured to not provide an output match ifeither the first or second threshold is not satisfied.

The match unit may be configured to perform the first and secondcomparisons by calculating first and second ratios of the magnitudes ofthe respective measures of similarity, the first and second thresholdsbeing satisfied if the respective ratios satisfy the first and secondthresholds, respectively.

The comparison unit may be configured to form descriptor distancesbetween the first local descriptor and the respective local descriptorfor each of said features in the second image, and the match unit may beconfigured to identify geometric best match and next-best match featuresby identifying the shortest and next-shortest descriptor distancescorresponding to features in the geometrically-constrained region in thesecond image.

The match unit may be configured to identify the global best matchfeature by identifying the shortest descriptor distance between thefirst local descriptor and the local descriptors of features in thesecond image not limited to those features lying in thegeometrically-constrained region.

The geometry unit may be configured to use the epipolar geometry toderive an epipolar line or area in the second image corresponding to thefirst feature in the first image, wherein the epipolar line or area isused to define the geometrically-constrained region.

The geometrically-constrained region may comprise all pixels of thesecond image within a predefined distance of the epipolar line or area.

The predefined distance may be determined in dependence on one or moremeasures of error in the epipolar geometry.

The predefined distance may be a predefined perpendicular distance tothe epipolar line or boundary of the epipolar area which varies withposition in the respective image in dependence on the epipolar geometry.

Each feature may represent a localised set of pixels in the respectiveimage and a feature may be determined to be located in thegeometrically-constrained region if one of more of the following istrue: any pixel represented by the feature lies in thegeometrically-constrained region; one or more predetermined pixelsrepresented by the feature lie in the geometrically-constrained region;a predetermined proportion of pixels represented by the feature lie inthe geometrically-constrained region.

The geometry unit may be further configured to receive camera dataidentifying limits on the viewable range from one or both of the cameraviewpoints and process the camera data so as to identify bounds on thegeometrically-constrained region in the second image in accordance withthe epipolar geometry.

The camera data may comprise for one or both camera viewpoints: depthinformation indicating nearest and/or furthest regions viewable from thecamera viewpoint; field of view information indicating regions viewablefrom the camera viewpoint; a view frustum for the camera viewpoint; anddata indicating regions in front of and/or behind the camera viewpoint.

The geometry unit may be configured to use the epipolar geometry toderive an epipolar line and may be further configured to transform thecoordinate system of the second image so as to map the epipolar lineparallel to one of the coordinate axes and cause the comparison unit to,in the transformed coordinate system, identify the features located inthe geometrically-constrained region in the second image.

The data processing system may be further configured to:

-   -   at the geometry unit, use the known epipolar geometry to define        a second geometrically-constrained region in the first image        corresponding to the geometric best match feature in the second        image;    -   at the comparison unit, compare the local descriptor of the        geometric best match feature with local descriptors of features        in the first image, thereby determining respective measures of        similarity between the first feature in the first image and the        respective features in the second image; and    -   at the match unit:        -   identify, from the features located in the second            geometrically-constrained region in the first image, (i) a            second geometric best match feature to the geometric best            match feature of the second image, and (ii) a second            geometric next-best match feature to the geometric best            match feature of the second image;        -   identify, from any of the features in the first image, a            second global best match feature to the geometric best match            feature of the second image;        -   perform a first comparison of the measures of similarity            determined for the second geometric best match feature and            for the second global best match feature, with respect to            the first threshold;        -   perform a second comparison of the measures of similarity            determined for the second geometric best match feature and            for the second geometric next-best match feature, with            respect to the second threshold; and    -   in dependence on whether the first and second thresholds are        satisfied, confirming the geometric best match feature in the        second image as the output match to the first feature in the        first image.

Different cameras may capture the images from the respective cameraviewpoints.

The same camera at different camera positions may capture the imagesfrom the respective camera viewpoints.

The data processing system is embodied in hardware on an integratedcircuit.

A data processing system may be configured to perform any of the methoddescribed herein.

There is provided a method of manufacturing, using an integrated circuitmanufacturing system, a data processing system as described herein.

There is provided a method of manufacturing, using an integrated circuitmanufacturing system, a data processing system as described herein, themethod comprising:

-   -   processing, using a layout processing system, a computer        readable description of the graphics processing system so as to        generate a circuit layout description of an integrated circuit        embodying the data processing system; and    -   manufacturing, using an integrated circuit generation system,        the data processing system according to the circuit layout        description.

There is provided computer program code for performing a method asdescribed herein.

There is provided a non-transitory computer readable storage mediumhaving stored thereon computer readable instructions that, when executedat a computer system, cause the computer system to perform a method asdescribed herein.

There is provided an integrated circuit definition dataset that, whenprocessed in an integrated circuit manufacturing system, configures theintegrated circuit manufacturing system to manufacture a data processingsystem as described herein.

There is provided a non-transitory computer readable storage mediumhaving stored thereon a computer readable description of a dataprocessing system as described herein that, when processed in anintegrated circuit manufacturing system, causes the integrated circuitmanufacturing system to manufacture an integrated circuit embodying thedata processing system.

There is provided a computer readable storage medium having storedthereon a computer readable description of a data processing system asdescribed herein which, when processed in an integrated circuitmanufacturing system, causes the integrated circuit manufacturing systemto:

-   -   process, using a layout processing system, the computer readable        description of the data processing system so as to generate a        circuit layout description of an integrated circuit embodying        the data processing system; and    -   manufacture, using an integrated circuit generation system, the        data processing system according to the circuit layout        description.

There is provided an integrated circuit manufacturing system configuredto manufacture a data processing system as described herein.

There is provided an integrated circuit manufacturing system comprising:

-   -   a non-transitory computer readable storage medium having stored        thereon a computer readable description of a data processing        system as described herein;    -   a layout processing system configured to process the computer        readable description so as to generate a circuit layout        description of an integrated circuit embodying the data        processing system; and    -   an integrated circuit generation system configured to        manufacture the data processing system according to the circuit        layout description.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is described by way of example with reference tothe accompanying drawings. In the drawings:

FIGS. 1(a)-(c) illustrate a scene and its capture by a pair ofcameras—FIG. 1(a) shows the scene, FIG. 1(b) an image captured at afirst camera position, and FIG. 1(c) shows the image captured at asecond camera position;

FIG. 2 is a schematic diagram of a data processing system for matchingfeatures in images captured at a pair of camera viewpoints related by anepipolar geometry;

FIG. 3 shows a flowchart of a method for matching features in imagescaptured at a pair of camera viewpoints related by an epipolar geometry;

FIG. 4 is a schematic diagram of a bounded epipolar line formed in theimage plane of a camera where both bounding points are finite and infront of the camera.

FIG. 5 is a schematic diagram of a bounded epipolar line formed in theimage plane of a camera where one of the bounding points is behind thecamera.

FIG. 6 is a schematic diagram of a bounded epipolar line formed in theimage plane of a camera where one point is at infinity in front of thecamera and the other is a finite point in front of the camera.

FIG. 7 is a schematic diagram of a bounded epipolar line formed in theimage plane of a camera where one point is at infinity in front of thecamera and the other is a finite point behind the camera.

FIG. 8 is a schematic diagram of a bounded epipolar line formed in theimage plane of a camera where one point is at infinity behind the cameraand the other is a finite point behind the camera.

FIG. 9 is a schematic diagram of a bounded epipolar line formed in theimage plane of a camera where one point is a finite point in front ofthe camera and the other is at depth 0 relative to the camera.

FIG. 10 is a schematic diagram of a bounded epipolar line formed in theimage plane of a camera where the near point in camera 1 is a finitepoint in front of camera 0, the image plane containing x is parallel tothe image plane of camera 0, and the far point of camera 1 is on theplane at infinity.

FIG. 11 is a schematic diagram of an integrated circuit manufacturingsystem.

DETAILED DESCRIPTION

The following description is presented by way of example to enable aperson skilled in the art to make and use the invention. The presentinvention is not limited to the embodiments described herein and variousmodifications to the disclosed embodiments will be apparent to thoseskilled in the art. Embodiments are described by way of example only.

Often in image processing systems the relative position and orientationof the camera(s) when each image is captured is at least approximatelyknown. For example, the relative position of a stereoscopic pair ofcameras is known, although can be subject to variations—e.g.stereoscopic cameras mounted on a vehicle might move slightly relativeto one another due to flex in the vehicle chassis and camera mountpoints. In a second example, information from an accelerometer in asmartphone may be used to determine the change in position andorientation of the smartphone between capturing images and hence providean estimate of the relative position and orientation of the smartphonecamera when each image is captured. Objects may also move in a scenebetween images captured at different times.

The relative position and orientation of the camera(s) when a pair ofimages is captured defines the epipolar geometry of the cameras (or inthe case of a single camera, the camera locations when each image wascaptured). The epipolar geometry of a pair of cameras may be derivedfrom, for example, a determination of the (possibly approximate orestimated) positions and orientations of the cameras, by estimating theepipolar geometry from the images captured by the cameras, or in anyother manner. The epipolar geometry of a pair of cameras may bedetermined, approximated, or estimated in any manner. Unless otherwisestated, references herein to a “camera” will be understood to refer to aviewpoint from which an image is captured, synthesised or otherwisegenerated. As is typical in the art, the use of the term “camera” doesnot imply that an image is captured by a physical camera and referencesto different cameras are references to different viewpoints and notnecessarily (although could be) different physical cameras.

There is provided an improved method for matching features identified inimages which uses knowledge of the epipolar geometry to constrain thematching process. The method provides an increased number of correctmatches and decreased number of incorrect matches compared toconventional methods which do not use the epipolar geometry to constrainthe matching process.

FIG. 1 illustrates a real-world scene 100 and its capture by cameras 112and 113 at the locations marked C0 and C1. The scene and position of thecameras is shown in FIG. 1(a), the image 114 captured by camera 112 isshown in FIG. 1(b), and the image 115 captured by camera 113 is shown inFIG. 1(c). The cameras 112 and 113 could be different cameras, or oneand the same camera at different time instants. The direction of view ofeach camera is indicated by arrows 116, 117 and the field of view ofeach camera is indicated by the respective pairs of arrows 104 and 105.Objects 101 and 102 are present in the scene 100 and observed fromdifferent views by cameras 112 and 113.

Consider a feature 109 on object 101. Feature 109 corresponds to an areaof the image including the bottom left corner of the house 101, and maybe chosen as a feature to track because it has a relatively highcontrast. To camera 112, feature 109 is detected in the image as feature123 shown in FIG. 1(b). In the present example, feature 109 may berepresented by a point in image 114—e.g. it is a point, patch, corner orarea feature. More generally the features identified in an image may beany kind of feature, including point, patch, area, edge, corner or linefeatures, to give a few examples. Based on the knowledge available fromimage 114 and in the absence of depth information, a point representingfeature 109 in image 114 may in the real-world scene lie anywhere alongline 103 originating at camera 112 and extending out to the limit ofvision of the camera. From the point of view of camera 113, that line103 appears as an epipolar line extending across the field of view ofthe camera 113 as shown in FIG. 1(c).

Thus, features in image 114 which may be identified by a point in theimage may be projected into image 115 as an epipolar line. Other typesof features in image 114 may be mapped by the epipolar geometry asplanes or volumes that are projected into image 115 as epipolar areas.For example, edge or line features in image 114 may be mapped by theepipolar geometry into planes which are projected into image 115 asepipolar areas of the image. An epipolar area may be used as thegeometrically-constrained region 118 described below.

The epipolar geometry connecting the cameras is at least approximatelyknown and therefore the position of the epipolar line 103 in image 115may be calculated (at least to an approximation). As is known in theart, the epipolar geometry may be determined from the known positions ofthe cameras C0 and C1 (or the relative positions of those points) andthe known orientation (or relative orientation) of the directions ofview of the cameras (indicated by the arrows 116 and 117).

The epipolar geometry may be determined in any suitable manner. Forexample:

-   -   the relative positions and orientations of the pair of cameras        may be known (e.g. due to being supported at a common device        such as a vehicle or smartphone—possibly forming a stereoscopic        pair of cameras);    -   the relative positions and orientations of the pair of cameras        may be inferred through processing captured images (e.g. using a        motion estimation technique) so as to yield three-dimensional        information about the scene and hence permit an estimate as to        the relative positions and orientations of the cameras (for        example, by detecting corresponding sets of features in a pair        of images and calculating the geometrical transformation        required to transform the positions of the set of features in an        image captured by the first camera into the positions of the set        of features observed in an image captured by the second        camera—the relative positions and orientations of the cameras        may be inferred from the calculated geometrical transformation);    -   information from an accelerometer in a device in which the        camera is implemented may be used to determine a change in        position and orientation of the camera between two time        instances at which the images are captured by the camera;    -   one or more of the above—for example, the position and        orientation of the cameras may be roughly known facilitating the        processing of captured images so as to yield three-dimensional        information about the scene and hence permit an improved        estimate as to the relative positions and orientations of the        cameras (this process could be iterative over two or more        captured images so as to systematically improve the estimate of        the relative positions and orientations of the cameras).

However the epipolar geometry is determined, it may be used in themanner described herein to improve the matching of features identifiedin a pair of camera images.

FIG. 2 shows a schematic diagram of a data processing system 200 formatching features identified in the pair of images 114 and 115. Afeature detector 203 is configured to detect features of interest in theimages 114, 115. Feature detector 203 may be configured to detect anykind of feature, including point, patch, area, edge, corner or linefeatures, to give a few examples. The feature detection could beperformed in any manner, as appropriate to the particular application.Typically feature detectors look to detect high contrast features in animage which are well localised and may be consistently identified inimages of a scene captured from different viewpoints. For example, thefeature detector 203 may use feature detection algorithms which performedge and/or corner detection in the pixel data of an image.

Exemplary algorithms for performing feature detection for points,patches, corners, edges and lines are described in Chapter 4 of ComputerVision: Algorithms and Applications, R. Szeliski, Springer 2011.

In the example illustrated in FIG. 1 , the feature detector operates acorner detection algorithm on images 114 and 115. The feature detectoridentifies corner features 121-125 in image 114 and corner features131-135 in image 115. It is trivial for a human to observe that feature123 in image 114 and feature 132 in image 115 correspond to one anotherand to feature 109 on object 101 in the real-world scene depicted inFIG. 1(a), but this is not trivial for a computer, and it is not at thispoint known to the system 200 which features in image 114 correspond towhich features in image 115.

As described above, a descriptor generator 204 is configured to generatea local descriptor (or “feature descriptor”) for each of the featuresidentified in each image. Any kind of local descriptor may be generated,as appropriate to the particular application. A local descriptorgenerally provides a compact representation of visual characteristics ofa feature in a manner that facilitates comparing and matching offeatures in an efficient way. For example, a local descriptor may be arepresentation of the contrast in the pixels of the image making up thefeature. A local descriptor may be formed through some transformation ofthe local image region around the feature point. Various algorithmsexist for generating local descriptors from pixel data comprised in afeature. For example, as described above, known local descriptorsinclude SIFT, SURF, BRISK and BRIEF descriptors. Local descriptors areoften expressed as vectors (in descriptor space) whose elements describethe variation in one or more visual characteristics of the representedfeature.

The descriptor generator 204 may be configured to store the localdescriptors it generates for each feature of an image at a data store210. This can avoid the descriptor generator having to regenerate thelocal descriptor multiple times for the same feature. The data store maybe any kind of memory (including a cache or lookup table) accessible tothe descriptor generator. The descriptor generator 204 may comprise thedata store 210 as shown in FIG. 2 . The descriptor generator may storethe local descriptors generated for an image whilst that image is beingprocessed at the data processing system 200. Once an image is no longerrequired for feature matching, the data store may be flushed and thelocal descriptors generated for a next image stored at the data store.

The local descriptors generated for each feature are used in thecomparison of the features detected in the images so as to identifythose features in each image which correspond to the same real-worldfeature. The comparison of the local descriptors of features in image114 with the local descriptors of features in image 115 is performed bycomparison unit 206. The comparison performed by the comparison unit onthe local descriptors of features in a pair of images may be performedin any manner so as to provide a measure of similarity between features.

The comparison unit may compare a local descriptor of a feature in image114 with a local descriptor of each feature in image 115. The particularlocal descriptors which are compared and the order in which localdescriptors are compared are implementation details and may in generalbe determined in any suitable manner at the comparison unit 206 so as toprovide the similarity measures according to the feature matchingalgorithms described herein.

A comparison of local descriptors may be performed so as to form adescriptor distance. A descriptor distance represents a measure ofsimilarity between the features corresponding to the local descriptors.A descriptor distance may be formed in any manner so as to berepresentative of the similarity between the features described by thelocal descriptors. For example, in comparing a pair of localdescriptors, a descriptor distance may be formed by subtracting one ofthe local descriptors of the pair from the other of the pair andcalculating the magnitude of that difference. Typically localdescriptors are expressed as vectors such that the vector subtraction oflocal descriptors results in a vector whose magnitude in descriptorspace expresses the difference between those local descriptors, andhence provides a measure of their similarity.

For a given feature in one image of an input pair of images, geometryunit 205 is configured to determine, based on at least approximateepipolar geometry for the one or more cameras which capture the inputimages, a geometrically-constrained region in the other image of theinput pair. The geometry unit may itself estimate the epipolar geometryfrom received data 209, or the epipolar geometry may be at leastapproximately known to or received by the geometry unit. For example,for a pair of stereoscopic cameras, the epipolar geometry may besubstantially fixed and stored at the geometry unit 205.

In some embodiments, the geometry unit 205 may be configured to receivedata 209 identifying an estimate of the relative positions andorientations of the camera(s) capturing the input image. For example, ina smartphone an accelerometer may determine the approximate relativepositions and orientations of a camera at the smartphone at the timeinstances that the two input images were captured, and the geometry unitmay be configured to calculate the epipolar geometry from that data.

In some embodiments, the geometry unit 205 may be configured to receivethe input images themselves and/or features identified in those imagesby the feature detector 203. The geometry unit may be configured toestimate the epipolar geometry of the camera(s) at the time(s) the inputimages were captured by processing the input images and/or features—e.g.by identifying a transform which maps the features of one input imageonto the features of the other. Various algorithms are known in the artfor calculating such transforms and inferring an estimate of theepipolar geometry from them.

The geometry unit 205 may receive features detected by the featuredetector 203. Using the epipolar geometry established for a pair ofimages, the geometry unit is configured to generate ageometrically-constrained region in a second image of the input pair inwhich a match for a feature of a first image of the input pair issought. A geometrically-constrained region represents an area of thesecond image within which, based on the epipolar geometry, a match isexpected to lie. A geometrically-constrained region may be derived froman epipolar line or area for a feature for which a match is sought. Ashas been described, a point representing a feature in an image capturedby one camera projects to an epipolar line in an image captured by thesecond camera. A line representing a feature in an image captured by onecamera projects to an epipolar area in an image captured by a secondcamera.

The geometry unit may use its at least approximate knowledge of theepipolar geometry to derive an epipolar line or area in a second imagefor a given feature in a first image and form ageometrically-constrained region for that epipolar line or area. Thegeometry unit may identify the geometrically-constrained region for animage as being a region defined by those parts of the image which liewithin a predefined distance of an epipolar line or area representing asubject feature in an image. The predefined distance may be fixed or mayvary along the length of the epipolar line or with position in theepipolar area. Defining a geometrically-constrained region about anepipolar line or area accommodates uncertainty as to the exact epipolargeometry (e.g. the epipolar geometry may be an estimate). In someexamples the geometrically-constrained region may be one and the same asthe epipolar line or area.

In some examples, an image may be divided into a plurality of tiles andthe geometrically-constrained region for a feature being sought maycomprise the set of tiles through which an epipolar line or areadetermined for that feature passes, or the set of tiles having one ormore points lying within a predefined distance of the epipolar line orwithin the epipolar area or a predefined distance of it.

A predefined distance to an epipolar line or area may be determined independence on one or more measures of the uncertainty in the epipolargeometry. For example, an estimate of the uncertainty in the epipolargeometry may be used to derive an estimate of the error in the epipolargeometry according to established principles of error analysis. Measuresof the uncertainty in the epipolar geometry may be due to, for example,one or more of errors in the calculation of the epipolar geometry fromreceived data, errors in the measurement of values from which theepipolar geometry is derived, and errors introduced by lens aberrationsof the cameras. Since the error may vary across an image due to theeffects of geometry and/or the size of the values representing anepipolar line or area (e.g. an error defined as a proportion of a valuewill vary in absolute size with the size of that value), the predefineddistance from an epipolar line or area may also vary. For example, wherea geometrically-constrained region is formed based on an epipolar line,the bounds of that region would not be parallel to the epipolar line,and may not be linear.

For instance, in the present example, at a point on the epipolar line103 which is relatively close to the position of the camera C₀ 112, theperpendicular distance to the epipolar line (i.e. the distance of lines106 and 107 from epipolar line 103 shown in FIG. 1 c ) may be relativelysmall compared to the corresponding perpendicular distance at a point onthe epipolar line 103 which is relatively far from the position of thecamera C₀ 112. In other examples, a single error estimate (e.g. anestimate of mean or maximum error) may be used such that the predefineddistance is fixed across an image and the bounds of thegeometrically-constrained region (e.g. 106 and 107) are parallel to theepipolar line.

More generally, a geometrically-constrained region may be determined inany manner—including empirically based on an assessment of the locationof matching points in a pair of images for a given camera system. Thebounds of the geometrically-constrained region may be defined by apredefined perpendicular distance from an epipolar line or area—which,for example, may be fixed or a function of position along an epipolarline or position in an epipolar area.

In the example shown in FIGS. 1(a)-(c), feature 123 of image 114 istransformed by the geometry unit according to the epipolar geometry ofcameras 112 and 113 into epipolar line 103 in image 115. Ageometrically-constrained region 118 may be defined for the epipolarline 103 to include parts of the image within a determined perpendiculardistance 108 of the line, including points on the epipolar line itself.In the example shown in FIG. 1(c), the perpendicular distance 108 thusdefines bounds 106 and 107 on the region 118 within the image 115.

Once it has identified geometrically-constrained region 118 for image115 which corresponds to feature 123 in image 114, the geometry unit maybe configured to identify those features of image 115 which lie withinthat geometrically-constrained region. For example, given the set of allfeatures in image 115, the geometry unit may be configured to identify asubset of features which lie within the geometrically-constrainedregion. In this manner, the geometry unit may be configured to identifythose features in image 115 which, according to the epipolar geometry bywhich images 114 and 115 are related, may provide a match to feature 123in image 114 for which the geometrically-constrained region 118 has beendetermined.

A match unit 207 is configured to identify matching features in a pairof images based on the measures of similarity formed at the comparisonunit 206 and geometry data determined by geometry unit 205. The matchunit receives measures of similarity between the local descriptors offeatures detected in a pair of images (e.g. 114 and 115) and geometryinformation identifying features which lie within eachgeometrically-constrained region determined for one or both of theimages. The geometry information may be any kind of data that identifiesto the match unit which of the features in an image lie within ageometrically-constrained region determined for that image. For example,the geometry information may be information identifying a set offeatures that geometry unit 205 has identified as being located withinthe geometrically-constrained region. In other examples, the geometryinformation may represent the geometrically-constrained region with thematch unit itself being configured to determine which features of animage lie within that region.

A controller 211 may be provided for controlling the sequence ofoperations at the data processing system 200. Returning to the exampleshown in FIGS. 1(a)-(c), for a given feature 123 of image 114 for whicha match is sought in a second image 115, the controller could beconfigured to cause:

-   -   a) the geometry unit to determine geometrically-constrained        region 118 in image 115;    -   b) the descriptor generator to generate local descriptors for        feature 123 of image 114 and each of the features identified in        image 115 by the feature detector, and to store those local        descriptors at data store 210;    -   c) using the local descriptors stored at data store 210, the        comparison unit 206 to compare each of the features identified        in image 115 to feature 123 of image 114;    -   d) the match unit 207 to receive the measures of similarity        generated by the comparison unit along with geometry information        identifying those features of image 115 which lie within        geometrically-constrained region 118;    -   e) the match unit 207 to use the measure of similarity and        geometry information to identify a best match feature in image        115 for feature 123 of image 114.

Many other implementations are possible and the above controllerconfiguration is merely one possible approach to sequencing theoperations of a data processing system configured to perform featurematching in accordance with the principles described herein.

In order to identify a matching feature, the match unit 207 isconfigured to identify (a) the best match for a feature of a first imagein the geometrically-constrained region of a second image and (b) thebest match for that feature of the first image globally (e.g. anywhereor substantially anywhere) in the second image. The match unitdetermines the best match for a feature from the set of similaritymeasures generated at the comparison unit 206 for the respective regionof the image, the most similar feature being chosen as the best match.The next-best match is the next-most similar feature as indicated by thesimilarity measures. For the geometrically-constrained region, the setof similarity measures from which the best match is chosen is the set ofsimilarity measures of features lying in the geometrically-constrainedregion in the second image 115. For the image as a whole, the set ofsimilarity measures from which the best match is chosen is the set ofsimilarity measures of features anywhere or substantially anywhere inthe image (e.g. matches at the edges of the image may be ignored). Ifthe similarity measure is a descriptor distance, the feature having thelowest descriptor distance (in descriptor space) is the most similar tothe feature of the first image for which a match is sought.

The match unit is configured to compare the similarity measure (e.g. adescriptor distance s_(N1)) of the best match in thegeometrically-constrained region to the similarity measure (e.g. adescriptor distance s_(G)) of the global best match in the second image.In order for the best match feature in the geometrically-constrainedregion to be selected as the output match 208, the similarity measure ofthe best match in the geometrically-constrained region must either beequal to the similarity measure of the global best match in the secondimage or not indicate a significantly worse match than the global bestmatch. Any suitable comparison may be performed between the similaritymeasures in order to determine whether the best match feature in thegeometrically-constrained region can be selected as an output match 208.For example, the comparison may comprise forming a ratio of thesimilarity measures, forming a ratio of the squares (or another power)of the similarity measures, subtracting one similarity measure from theother, etc.

The comparison of the similarity measure for the bestgeometrically-constrained feature (e.g. descriptor distance s_(N1)) andthe similarity measure for the best global feature (e.g. descriptordistance s_(G)) may comprise forming a ratio (e.g.

$\left. \frac{s_{N1}}{s_{G}} \right)$

of those similarity measures. In examples described herein thesimilarity measures are descriptor distances in descriptor space,wherein a lower descriptor distance indicates a greater similarity. Forexample, the comparison may involve determining whether the ratio of thegeometrically-constrained and global descriptor distances

$\left( \frac{s_{N1}}{s_{G}} \right)$

is below a predefined threshold t_(G), wherein t_(G) is greater thanunity. If this condition is satisfied then the best match feature in thegeometrically-constrained region is not a significantly worse match thanthe global best match feature in the second image. As an example, thethreshold, t_(G), may be chosen to be in the range 1.01 to 1.1. Anoptimal value for the threshold t_(G) for a given application and camerasystem may be empirically identified. This first ratio test ensures thatthe match found in the geometrically-constrained region is notsignificantly worse than the global best match in the image. If theglobal best match is in the geometrically-constrained region then thesame feature will be the best match for the global image and for thegeometrically-constrained region, such that s_(N1)=s_(G,) and the ratio

$\frac{s_{N1}}{s_{G}} = 1.$

The match unit may be further configured to perform a second test whichcompares the similarity measure of the best match in thegeometrically-constrained region to the similarity measure of thenext-best match in the geometrically-constrained region. The match unitmay be further configured such that the best match feature in thegeometrically-constrained region can be selected as the output match 208if the similarity measures for the best match and the next-best match inthe geometrically-constrained region indicate that the best match is asignificantly better match than the second best match in that region. Inthe examples in which the similarity measures are descriptor distances,this second test comparison may involve determining whether the ratio ofthe best match descriptor distance (s_(N1)) and the next-best descriptordistance (s_(N2)) of the features in the geometrically-constrainedregion is below a predefined threshold (t_(N)) (which is less thanunity), indicating that the best match feature in thegeometrically-constrained region is a significantly better match thanthe next-best feature in geometrically-constrained region. The thresholdt_(N) must be in the range 0<t_(N)<1, and typically a value is chosenfor t_(N) in the range 0.5≤t_(N)≤0.8. This second ratio test ensuresthat the best match in the geometrically-constrained region isunambiguous.

In examples described herein, in order for the best match in thegeometrically-constrained region to be selected as the output match 208both conditions must be satisfied, i.e.

${\frac{s_{N1}}{s_{G}} < t_{G}},{{{and}\frac{s_{N1}}{s_{N2}}} < {t_{N}.}}$

When either the first or the second ratio tests are not satisfied thematch unit may be configured to not output a match for the given featureof the first image whose match is sought in the second image. In thismanner, the match unit can be configured to provide only matches of highconfidence. In other words, the match unit provides only matches whichare unambiguously the best match in the geometrically-constrained regionfor a feature and for which there is not a significantly better matchoutside of the geometrically-constrained region.

On identifying a best match for a feature, the match unit may beconfigured to confirm that the match is symmetric. A best match issymmetric if the best match for a feature f_(A) in a first image isfeature f_(B) in a second image and the best match for the feature f_(B)in the second image is the feature f_(A) in the first image. Thus, onidentifying a best match f_(B) in a second image for a feature f_(A) ofa first image, the match unit may be configured to subsequently identifythe best match in the first image for feature f_(B). If the featuref_(A) is found to be the best match in the first image for f_(B) thenf_(B) is confirmed as the best match in the second image for f_(A) (itfollows that f_(A) may also be confirmed as the best match in the firstimage for f_(B)).

If a best match for a feature is not found to be symmetric and hence notconfirmed, the match unit may be configured to not provide a best matchoutput for that feature.

A mathematical example will now be described in which the similaritymeasures are descriptor distances such that a lower distance indicates abetter match between features. It will be appreciated that the followingapproach can be readily modified for other types of similaritymeasure—for example where a larger value indicates a better matchbetween features.

A local descriptor vector, d, is computed for each detected feature inan image such that each feature may be defined as a point with adescriptor, f={o, d} where o is the position of the feature in theimage. Any method may be used for computing the descriptor vector for afeature. In this example a distance between descriptor vectors may beevaluated which returns a lower score when there is a better matchbetween features.

Given two sets of features, f₀={f₀₀, f₀₁, . . . , f_(0i), . . . ,f_(0(I-1))} in a first image and f₁={f₁₀, f₁₁, . . . , f_(1j), . . . ,f_(1(j-1))} in a second image, descriptor-based matching involvesfinding nearest neighbour pairs of features in descriptor space. Forexample, the second set f₁ is searched for the best match feature tofeature f₀₀ of the first set; then the second set is search for the bestmatch feature to the next feature f₀₁ of the first set; and so on untilmatches have been sought for the complete set of features f₀. The twoimages are related by an epipolar geometry which is at leastapproximately known. This knowledge can be considered to provide“geometric constraints” on the matching process.

For a given feature of the first set, three descriptor distances may beidentified: descriptor distance s_(N1) between the given feature of thefirst set and its nearest neighbour (in descriptor space) in the secondset that satisfies the geometric constraints (i.e. lies within ageometrically-constrained region determined in accordance with theprinciples described herein); descriptor distance s_(N2) between thegiven feature of the first set and its next-nearest neighbour (indescriptor space) in the second set that satisfies the geometricconstraints; and descriptor distance s_(G) between the given feature ofthe first set and its global nearest neighbour in the second setirrespective of geometry (i.e. selected from any of the features of thesecond set). Two ratio tests are applied using these descriptordistances.

The first ratio test is between the nearest neighbour that satisfies thegeometry constraints and the nearest neighbour irrespective of geometry(e.g. anywhere in the image):

s_(N1)s_(G) ⁻¹<t_(G).

As described above, t_(G) is larger than one, and may be chosen to be inthe range 1.01≤t_(G)<1.1.

The second ratio test is a nearest neighbour ratio test subject to thegeometry constraints established by the epipolar geometry between theimages in which the feature match is sought:

s_(N1)s_(N2) ⁻¹<t_(N).

Here, as described above, t_(N) is in the range 0<t_(N)<1, and may bechosen to be in the range, 0.5≤t_(N)≤0.8.

The first ratio test compares the selected match against the features ofthe whole image to ensure that the match is not a significantly worsematch than any other match in the image. This helps to ensure that theidentified best match in the geometrically-constrained region is agenuine match for the subject feature in the other image. This firsttest may be referred to as the global nearest neighbour ratio test. Thesecond ratio test checks that the match is unambiguously the best matchwithin the geometrically-constrained region.

The use of epipolar geometry constraints in the second ratio test inparticular helps to exclude many possible incorrect matches and improvethe reliability of feature matching between images. This can beappreciated by returning to FIGS. 1(a)-(c).

The feature detector 203 identifies features 121-125 in image 114 andfeatures 131-135 in image 115. Consider the case when the dataprocessing system 200 is arranged to identify a match for feature 123 inimage 114. As described, the geometry unit 205 uses the at leastapproximately known epipolar geometry between the images to derive ageometrically-constrained region 118 in image 115 describing theexpected range of positions of the feature 123. The geometry unit 205may derive the geometrically-constrained region 118 from an epipolarline formed for image 115 in respect of a feature identified in image114—for example, by identifying a region comprising those parts of theimage 115 which lie within a predefined distance 108 of the epipolarline.

Each of the features 131-135 detected in image 115 has a localdescriptor generated for it by descriptor generator 204. The comparisonunit 206 is configured to compare each of the local descriptors of thefeatures 131-135 with the local descriptor formed for the subjectfeature 123 of image 114. Using the local descriptors of the features,the match unit 207 identifies the best and next-best matches to feature123 from the features 132, 134, 135 which lie in thegeometrically-constrained region 118 identified by the geometry unit205. In this case, the closest match is identified as being feature 132and the next closest is feature 135. The match unit further identifiesthe best global match to feature 123 from all of features 131-135. Inthis case, the closest global match is also identified as being feature132.

In this example, provided the thresholds of the ratio tests aresatisfied, feature 132 will be selected as the best match for feature123. It can be appreciated from FIG. 1 that this is the correct match.

In other examples, feature 133 might present as the best global match tofeature 123 (perhaps due to partial occlusion of feature 132 in image115 by another object in the scene). Feature 133 could not however beselected as a match for feature 123 because it does not lie in thegeometrically-constrained region 118. If feature 133 is a significantlybetter match than feature 132 (i.e. if

${\frac{s_{132}}{s_{133}} \geq t_{G}},$

where d₁₃₂ is the descriptor distance for feature 132 and where d₁₃₃ isthe descriptor distance for feature 133) then feature 132 would not beselected as a match to feature 123 and no match would be returned forfeature 123. Despite no match being provided this is generallyadvantageous compared to returning ambiguous or incorrect matches. Otherfeature matches may yet be found between the images: for example,feature 133 is likely to be identified as a match to feature 124.

FIG. 3 is a flowchart illustrating the method of identifying a match ina second image for a feature of a first image as performed by dataprocessing system 200 in the present example. At step 301 features areidentified in the second image and a local descriptor is formed for thefirst feature and each feature of the second image so as to facilitatecomparison of the features. For the first feature in the first image ofthe input pair, the corresponding epipolar line in image 115 isdetermined at step 302 using the known epipolar geometry between the twoimages, and a geometrically-constrained region is derived from theepipolar line.

At step 303 the local descriptor of the first feature is compared to thelocal descriptors of the detected features in the second image. Thiscomparison is performed so as to at 304 identify best match andnext-best match features for the first feature in thegeometrically-constrained region of the second image. And at 305 theglobal best match feature in the second image is identified. Measures ofsimilarity (e.g. descriptor distances) are formed by the comparison foreach of the global and geometrically-constrained best match andnext-best match features. The ratio tests are then performed at 306 onthe measures of similarity in order to verify that the best-matchfeature in the geometrically-constrained region is not a significantlyworse match than the global best-match feature in the image by at leasta first threshold factor, and that the best-match feature in thegeometrically-constrained region is a significantly better match thanthe next-best match feature in that region by at least a secondthreshold factor. If the ratio tests are satisfied, the best-matchfeature in the geometrically-constrained region is selected 308 as theoutput match for the first feature. Otherwise, no match 307 is providedfor the first feature.

In a system in which the epipolar geometry between cameras/camerapositions is known as a result of being estimated from images capturedat the cameras/camera positions, it can be advantageous to use theoutput matches to improve the estimates of the epipolar geometry. Theimproved estimate of the epipolar geometry can then be used in themethods described herein to identify future feature matches. In thismanner, iterative improvement of the estimated epipolar geometry and ofthe feature matches can be achieved. For example, the geometry unit 205of the data processing system shown in FIG. 2 may be configured toestimate the epipolar geometry from matching features identified in apair of images of a scene captured from different camera positions—e.g.by using an appropriate algorithm for determining a coordinate transformwhich maps a set of detected features in one image onto a set ofmatching detected features in a second image of an image pair. As isknown in the art, once the coordinate transformation required to mappoints between images is known, the fundamental matrix (or another setof values) describing the epipolar geometry of those images can bederived. Exemplary techniques for identifying a coordinatetransformation to map between two images and hence deriving the epipolargeometry relating those images are described in Chapter 7 of ComputerVision: Algorithms and Applications, R. Szeliski, Springer 2011.

View Constraints

It is possible to further improve the definition of ageometrically-constrained region derived from an epipolar line in orderto exclude areas of an image from a region where it is known that amatch will not be found. One such improvement may be achieved by usingknowledge of the view frustum of one or both cameras. For example, depthconstraints can be determined for one or both cameras capturing imagesin which feature matching is to be performed. Depth constraints maycomprise one or more of: data (e.g. one or more planes or othersurfaces) defining the nearest and/or furthest points in the real-worldscene relative to the camera which might be identified as features; data(e.g. one or more planes or other surfaces) defining the field of viewof one or both cameras so as to identify the range of points viewable toa camera; data defining which points lie in front of or behind thecamera (e.g. a geometric test for identifying whether a point in a scenelies behind a camera and therefore will not be visible to the camera).Note in some examples, the images in which feature matching is to beperformed will be captured by the same camera.

Identifying view constraints for a pair of cameras (or the same cameraat two different positions and/or orientations) can be approachedmathematically as follows. In the example below, a point in a firstimage 1 is projected into a second image 0.

A fundamental matrix may be used to describe the epipolar geometry of apair of cameras. The fundamental matrix can be used to project a pointin one image to a line in the other image. A 3D point that projects tothe point in the first image must lie on the line in the second image.As described above, this epipolar relationship can be used to constrainthe matching of 2D features between views. Additional depth constraintsmay be identified based on the limited range of depths that a 3D pointcan assume relative to the cameras.

Assume a point in 3D space x ∈

³ is observed in two images as points: o₀, o₁ ∈

². Let the homogeneous versions of the observations be p₀=[o₀ 1]^(T),p₁=[o₁ 1]^(T). The epipolar geometry is defined as,

p₁ ^(T)Fp₀=p₀ ^(T)F^(T)p₁=0,

where F is the fundamental matrix.

In a matching problem, x may be unknown and the correspondence betweenp₀ and p₁ is unknown. The epipolar geometry can be used to constrain thesearch for a match. Given point p₁, a candidate point p₀ in image 0 canonly be a match for p₁ if it lies on the line,

l₀=p₁ ^(T)F.

As described above, it is advantageous to make allowance for noise anderror in the epipolar geometry defined by the fundamental matrix, so thetest may be applied as,

dist(l ₀ ,p ₀)<t,

where dist(l₀,p₀) finds the shortest Euclidean distance between thepoint and the line (e.g. the perpendicular distance to the line), and tis a threshold chosen according to the allowable error.

Additional constraints can be applied if the depth of the point relativeto camera 1 is known to be limited and the calibration of the cameras isknown. The camera calibration may consist of an intrinsic parametermatrix K, an extrinsic rotation R, and a translation t.

${K = \begin{bmatrix}f_{x} & s & c_{x} \\0 & f_{y} & c_{y} \\0 & 0 & 1\end{bmatrix}},$

where f_(x) and f_(y) are the horizontal and vertical focal lengths, thecentre of projection is the point (c_(x),c_(y)) in the image, and s isthe skew parameter, which is 0 for square pixel cameras. The pointprojection equation is therefore,

p=Px=K[R t]x.

The nearest and farthest possible solution for x can be found andprojected to image 0 to find bounding points on the line l₀. First, theline in 3D that projects to p₁ must be found (also known as theback-projection of point p₁). It can be defined as the line between thecamera centre c₁ and the point i on the plane at infinity that projectsto point p₁. Where no further information about depth constraints areavailable, these two points also serve as the minimum and maximum depthsolutions for x. The camera centre is,

$C_{1} = {\begin{bmatrix}{{- R_{1}^{T}}t_{1}} \\1\end{bmatrix}.}$

The point i has the form i=[x_(i) y_(i) z_(i) 0]^(T)=[i′ 0]. It can beinterpreted as a direction vector and can be solved from the projectionequation,

$p_{1} = {K_{1}\left\lbrack \begin{matrix}R_{1} & {\left. t_{1} \right\rbrack\begin{bmatrix}x_{i} \\y_{i} \\z_{i} \\0\end{bmatrix}}\end{matrix} \right.}$ ${\therefore i^{\prime}} = {\begin{bmatrix}x_{i} \\y_{i} \\z_{i}\end{bmatrix} = {R_{1}^{T}K_{1}^{- 1}{p_{1}.}}}$

Here R₁ ^(T)=R₁ ⁻¹ because R is orthogonal by definition (it is arotation matrix) and

$K_{1}^{- 1} = {f_{x}^{- 1}{{f_{y}^{- 1}\begin{bmatrix}f_{y} & {- s} & {{{- f_{y}}c_{x}} + {sc}_{y}} \\0 & f_{x} & {{- f_{x}}c_{y}} \\0 & 0 & {f_{x}f_{y}}\end{bmatrix}}.}}$

The 3D point is then any point that satisfies and lies on the epipolarline,

x=ai+bC ₁.

The geometry unit 205 may be configured to calculate an epipolar line inthe above manner based on a fundamental matrix expressing at least anapproximation of the epipolar geometry.

Note that even though i is a homogeneous quantity, the scale of thevector should remain as computed above as i′ to ensure solutions for ahave the correct scale in later steps. Furthermore, the sign isimportant for determining whether i is in front of or behind camera 0.Since x is an inhomogeneous quantity (and its scale and sign is onlyimportant if x=i), the values of a and b may be scaled by any factor toyield an equivalent result. It is simplest to express any finite pointby setting b=1 and to express the infinite point by setting b=0.

The depth of a finite point is found by transforming the point to cameracoordinates and measuring the z-coordinate.

$\begin{matrix}{{x_{d1} = {\begin{bmatrix}R_{1} & t_{1} \\0^{T} & 1\end{bmatrix}x}},} \\{{= {\begin{bmatrix}R_{1} & t_{1} \\0^{T} & 1\end{bmatrix}\left( {{a\begin{bmatrix}i^{\prime} \\0\end{bmatrix}} + \begin{bmatrix}{{- R_{1}^{T}}t_{1}} \\1\end{bmatrix}} \right)}},} \\{{= {{a\begin{bmatrix}{R_{1}i^{\prime}} \\0\end{bmatrix}} + \begin{bmatrix}0 \\1\end{bmatrix}}},} \\{{= \begin{bmatrix}{{aR}_{1}i^{\prime}} \\1\end{bmatrix}},} \\{{= \begin{bmatrix}{{aK}_{1}^{- 1}p_{1}} \\1\end{bmatrix}},} \\{= \left\lbrack \begin{matrix}x_{d1} & y_{d1} & z_{d1} & {\left. 1 \right\rbrack^{T} \cdot}\end{matrix} \right.} \\{{z_{d1} = {{K_{1}^{{- 1}{(3)}}p_{1}} = a}},}\end{matrix}$

where K₁ ⁻¹⁽³⁾=[0 0 1] is the third row of K₁ ⁻¹. Hence, a solution forx with depth d is found by setting a=d,

x(d)=di+c ₁.

Let the minimum working depth of the camera be d_(n) and the maximumdepth be d_(f), then the corresponding solutions for x in image 1 arex_(n)=x(d_(n)) and x_(f)=x(d_(f)). Where the working range of the camerais not known, the camera centre and infinite point provide an absolutemaximum working range (x_(n)(0)=C₁, x_(f)(∞)=i). Projecting thesebounding points to image 0 gives bounding points on the epipolar line inimage 0,

p_(n)=P₀x_(n),

p_(f)=P₀x_(f).

FIGS. 4 to 10 illustrate different situations based on the nature andposition of the bounding points. In these figures, one dimension isdiscarded for simplicity so that the projection of 2D points to a 1Dimage is shown. π₀ is the image plane of camera 0, and the trianglecontaining π₀ and C₀ defines the angle of view of camera 0.

If both x_(n) and x_(f) are in front of camera 0, then the epipolar lineis found in image 0 as the line joining p_(n) and p_(f), as illustratedin FIG. 4 for the finite case and in FIG. 6 for the case where x_(f)=i.

If both x_(n) and x_(f) are behind camera 0, then point x cannot beobserved by camera 0 and the epipolar line is not defined. Where it isestablished that a feature can only be observed by one of the cameras,feature matching may not be performed and the processing cost associatedwith that matching avoided.

If one point is in front of the camera and the other behind, then theepipolar line extends from the image of the point in front of camera 0,in the direction away from the projection of the point behind camera 0.FIG. 5 illustrates this case for finite points. FIG. 7 shows the casewhere x_(n) is behind the camera, and FIG. 8 shows the case where x_(f)is infinite and behind the camera.

Incorporating the depth constraints relative to camera 0 furtherconstrains the epipolar line. This also prevents the cases where onebounding point is in front of camera 0 and the other is behind. To findthe depth of the point relative to camera 0, transform it to the camera0 coordinate space,

$\begin{matrix}{{x_{d2} = {\begin{bmatrix}R_{0} & t_{0} \\0^{T} & 1\end{bmatrix}x}},} \\{{= {\begin{bmatrix}R_{0} & t_{0} \\0^{T} & 1\end{bmatrix}\left( {{a\begin{bmatrix}i^{\prime} \\0\end{bmatrix}} + \begin{bmatrix}{- C_{1}} \\1\end{bmatrix}} \right)}},} \\{{= {{a\begin{bmatrix}{R_{0}i^{\prime}} \\0\end{bmatrix}} + \begin{bmatrix}{t_{0} - {R_{0}C_{1}}} \\1\end{bmatrix}}},} \\{{= \begin{bmatrix}{{{aR}_{0}i^{\prime}} + t_{0} - {R_{0}C_{1}}} \\1\end{bmatrix}},} \\{{= \begin{bmatrix}{{{aR}_{0}R_{1}^{T}K_{1}^{- 1}p_{1}} + t_{0} - {R_{0}C_{1}}} \\1\end{bmatrix}},} \\{= \left\lbrack \begin{matrix}x_{d0} & y_{d0} & z_{d0} & {\left. 1 \right\rbrack^{T}.}\end{matrix} \right.}\end{matrix}$

The depth is then z_(d0),

d ₀ =z _(d0) =a(R ₀ R ₁ ^(T) K ₁ ⁻¹)⁽³⁾ p ₁ +t _(z0) −R ₀ ⁽³⁾ C ₁ =aα+β,

Where the superscript ⁽³⁾ indicates row 3 of a matrix. Inverting theequation gives an expression for a, given a depth value relative tocamera 0.

a=α ⁻¹(d ₀−β).

Note that if the back-projection of p₁ is parallel to the image plane ofcamera 0, then α=0 and the above equation is not valid. The depth limitsd_(n) and d_(f) can be converted from depths relative to camera 0, todepths relative to camera 1 according to,

d _(n0)=α⁻¹(d _(n)−β),

d _(f0)=α⁻¹(d _(f)−β).

Depending on the relative orientation of the cameras, d_(n0) may be at agreater depth relative to camera 1 than d_(f0). To simplify comparingdepths, if d_(n0)>d_(f0), the depths can be swapped so thatd_(n0)<d_(f0). The final depth limits are then the intersection of thelimits from camera 0 and 1:

$d_{n01} = \left\{ \begin{matrix}{\max\left( {d_{n},d_{n0}} \right)} & {{\alpha \neq 0},} \\d_{n} & {{\alpha = 0},}\end{matrix} \right.$ $d_{f01} = \left\{ \begin{matrix}{\min\left( {d_{f},d_{f0}} \right)} & {{\alpha \neq 0},} \\d_{n} & {\alpha = 0.}\end{matrix} \right.$

These depth limits may be calculated by the geometry unit 205 in orderto identify whether one or both of the endpoints of the epipolar linelie within the viewable range of camera 0. If the camera working depthsdo not overlap, then d_(n01)>d_(f01) and the epipolar line is notdefined. In this case the geometry unit 205 may be configured to notlook for a matching feature in image 0 for the feature of image 1 whichcorresponds to the epipolar line. This avoids unnecessary processing.Otherwise, the points x_(n)=x(d_(n01)) and x_(f)=x(d_(f01)) will not bebehind camera 0 and at least part of the epipolar line will lie withinthe viewable range of camera 0.

Where one of x_(n) or x_(f) is in the plane containing the centre ofcamera 0 and parallel to the image plane of camera 0 (depth=0 relativeto camera 0, the camera plane), that point projects to a point atinfinity in image 0. This can only happen if d_(n)=0. Finding ameaningful value for d_(n) therefore simplifies implementation.

FIG. 9 illustrates the case where x_(n) is on the camera plane of camera0. The point on the camera plane projects to a point of the form p=[x y0]^(T). This can be interpreted as a direction vector in the imageplane. As with i, if the sign is preserved correctly then this directionvector can be interpreted as pointing in one direction only. Where allof x_(n), x_(f), and the camera matrices are computed as listed above,then the sign will be correct.

In the example of FIG. 9 , the epipolar line extends from p_(f) in thedirection given by p_(n)=[x y 0]^(T). Alternatively, p_(n) may be finiteand p_(f) may be infinite, so that the line extends from p_(n) in thedirection given by p_(f). FIG. 10

shows a special case that produces infinite p_(f): the back-projectionline of x is on a plane parallel to the image plane of camera 0 andx_(f)=i.

If x is collinear with C₀ and C₁, then the epipolar line reduces to theepipolar point e₀=P₀C₁ in image 0 and p₁=e₁=P₁C₀ in image 1. The depthof x cannot be resolved in this case and no geometrically-constrainedregion can be defined. In this case the match unit may be configured notto look for a match to the feature in image 0.

By forming an epipolar line that is bounded according to known depthconstraints, the geometry unit may further reduce the size of the regionwhere a feature identified in a first image is expected to be found in asecond image related to the first by at least approximately knownepipolar geometry. The geometry unit may derive ageometrically-constrained region based on the bounded epipolar line suchthat the geometrically-constrained region is itself bounded according tothe established depth constraints. For example, the geometry unit mayderive a geometrically-constrained region which comprises all pointswithin a predefined distance of the bounded epipolar line.

The above example is just one way in which a bounded epipolar line maybe formed. The geometry unit may be configured to form a boundedepipolar line in any manner, not limited to the particular examplesgiven herein.

Coordinate Rotation

It can be advantageous to make use of a rotation in the image 0coordinate system so as to map the epipolar line to be parallel to oneof the coordinate axes. For example, the coordinate system could bemapped such that the epipolar line is parallel to the x-axis and istherefore “horizontal” in image 0. This simplifies the computation ofthe point-line distance to finding the y-offset between the line andpoint, and the depth constraints calculated above become limits on thex-coordinates. The epipolar line may be written as l′=[a′ b′ c′]. It isa homogeneous quantity, so it can be scaled as desired. To make thesub-vector [a b] a unit vector, the line is scaled according to,

l=[a b c]=l′√{square root over ((a′ ² +b′ ²)⁻¹)}.

Note that a line with a=b=0 is not valid, so this case does not need tobe addressed. A rotation is desired that maps the line as follows,

lR _(l)=[1 0 c],

where R_(l) has the form,

${R_{l} = \begin{bmatrix}r_{c} & {- r_{s}} & 0 \\r_{s} & r_{c} & 0 \\0 & 0 & 1\end{bmatrix}},$ r_(c) = cos (θ), r_(s) = sin (θ).

Expanding and simplifying yields,

${\begin{bmatrix}a & b \\b & {- a}\end{bmatrix}\begin{bmatrix}r_{c} \\r_{s}\end{bmatrix}} = {\begin{bmatrix}1 \\0\end{bmatrix}.}$

Solving for r_(c) and r_(s) yields,

${\begin{bmatrix}r_{c} \\r_{s}\end{bmatrix} = {{{\left( {a^{2} + b^{2}} \right)^{- 1}\begin{bmatrix}a & b \\b & {- a}\end{bmatrix}}\begin{bmatrix}1 \\0\end{bmatrix}} = \begin{bmatrix}a \\b\end{bmatrix}}},$ ${\therefore R_{l}} = {\begin{bmatrix}a & {- b} & 0 \\b & a & 0 \\0 & 0 & 1\end{bmatrix}.}$

For a given epipolar line, this matrix can be used to rotate thecoordinate system of an image in which a feature is sought so that theepipolar line is parallel to the x-axis. It can be advantageous for thegeometry unit to perform such a rotation so as to simply subsequent useof the epipolar line. For example, since the perpendicular distance fromthe epipolar line is given by the y-value alone it becomes trivial tocheck which features detected in an image lie within a predefineddistance of the epipolar line, e.g. for determining which features liewithin a geometrically-constrained region.

The data processing system of FIG. 2 is shown as comprising a number offunctional blocks. This is schematic only and is not intended to definea strict division between different logic elements of such entities.Each functional block may be provided in any suitable manner. It is tobe understood that intermediate values described herein as being formedby a data processing system need not be physically generated by the dataprocessing system at any point and may merely represent logical valueswhich conveniently describe the processing performed by the dataprocessing system between its input and output.

The data processing system described herein may be embodied in hardwareon an integrated circuit. The data processing system described hereinmay be configured to perform any of the methods described herein.Generally, any of the functions, methods, techniques or componentsdescribed above can be implemented in software, firmware, hardware(e.g., fixed logic circuitry), or any combination thereof. The terms“module,” “functionality,” “component”, “element”, “unit”, “block” and“logic” may be used herein to generally represent software, firmware,hardware, or any combination thereof. In the case of a softwareimplementation, the module, functionality, component, element, unit,block or logic represents program code that performs the specified taskswhen executed on a processor. The algorithms and methods describedherein could be performed by one or more processors executing code thatcauses the processor(s) to perform the algorithms/methods. Examples of acomputer-readable storage medium include a random-access memory (RAM),read-only memory (ROM), an optical disc, flash memory, hard disk memory,and other memory devices that may use magnetic, optical, and othertechniques to store instructions or other data and that can be accessedby a machine.

The terms computer program code and computer readable instructions asused herein refer to any kind of executable code for processors,including code expressed in a machine language, an interpreted languageor a scripting language. Executable code includes binary code, machinecode, bytecode, code defining an integrated circuit (such as a hardwaredescription language or netlist), and code expressed in a programminglanguage code such as C, Java or OpenCL. Executable code may be, forexample, any kind of software, firmware, script, module or librarywhich, when suitably executed, processed, interpreted, compiled,executed at a virtual machine or other software environment, cause aprocessor of the computer system at which the executable code issupported to perform the tasks specified by the code.

A processor, computer, or computer system may be any kind of device,machine or dedicated circuit, or collection or portion thereof, withprocessing capability such that it can execute instructions. A processormay be any kind of general purpose or dedicated processor, such as aCPU, GPU, System-on-chip, state machine, media processor, anapplication-specific integrated circuit (ASIC), a programmable logicarray, a field-programmable gate array (FPGA), or the like. A computeror computer system may comprise one or more processors.

It is also intended to encompass software which defines a configurationof hardware as described herein, such as HDL (hardware descriptionlanguage) software, as is used for designing integrated circuits, or forconfiguring programmable chips, to carry out desired functions. That is,there may be provided a computer readable storage medium having encodedthereon computer readable program code in the form of an integratedcircuit definition dataset that when processed in an integrated circuitmanufacturing system configures the system to manufacture a dataprocessing system configured to perform any of the methods describedherein, or to manufacture a data processing system comprising anyapparatus described herein. An integrated circuit definition dataset maybe, for example, an integrated circuit description.

There may be provided a method of manufacturing, at an integratedcircuit manufacturing system, a data processing system as describedherein. There may be provided an integrated circuit definition datasetthat, when processed in an integrated circuit manufacturing system,causes the method of manufacturing a data processing system to beperformed.

An integrated circuit definition dataset may be in the form of computercode, for example as a netlist, code for configuring a programmablechip, as a hardware description language defining an integrated circuitat any level, including as register transfer level (RTL) code, ashigh-level circuit representations such as Verilog or VHDL, and aslow-level circuit representations such as OASIS® and GDSII. Higher levelrepresentations which logically define an integrated circuit (such asRTL) may be processed at a computer system configured for generating amanufacturing definition of an integrated circuit in the context of asoftware environment comprising definitions of circuit elements andrules for combining those elements in order to generate themanufacturing definition of an integrated circuit so defined by therepresentation. As is typically the case with software executing at acomputer system so as to define a machine, one or more intermediate usersteps (e.g. providing commands, variables etc.) may be required in orderfor a computer system configured for generating a manufacturingdefinition of an integrated circuit to execute code defining anintegrated circuit so as to generate the manufacturing definition ofthat integrated circuit.

An example of processing an integrated circuit definition dataset at anintegrated circuit manufacturing system so as to configure the system tomanufacture a data processing system will now be described with respectto FIG. 11 .

FIG. 11 shows an example of an integrated circuit (IC) manufacturingsystem 1002 which is configured to manufacture a data processing systemas described in any of the examples herein. In particular, the ICmanufacturing system 1002 comprises a layout processing system 1004 andan integrated circuit generation system 1006. The IC manufacturingsystem 1002 is configured to receive an IC definition dataset (e.g.defining a data processing system as described in any of the examplesherein), process the IC definition dataset, and generate an IC accordingto the IC definition dataset (e.g. which embodies a data processingsystem as described in any of the examples herein). The processing ofthe IC definition dataset configures the IC manufacturing system 1002 tomanufacture an integrated circuit embodying a data processing system asdescribed in any of the examples herein.

The layout processing system 1004 is configured to receive and processthe IC definition dataset to determine a circuit layout. Methods ofdetermining a circuit layout from an IC definition dataset are known inthe art, and for example may involve synthesising RTL code to determinea gate level representation of a circuit to be generated, e.g. in termsof logical components (e.g. NAND, NOR, AND, OR, MUX and FLIP-FLOPcomponents). A circuit layout can be determined from the gate levelrepresentation of the circuit by determining positional information forthe logical components. This may be done automatically or with userinvolvement in order to optimise the circuit layout. When the layoutprocessing system 1004 has determined the circuit layout it may output acircuit layout definition to the IC generation system 1006. A circuitlayout definition may be, for example, a circuit layout description.

The IC generation system 1006 generates an IC according to the circuitlayout definition, as is known in the art. For example, the ICgeneration system 1006 may implement a semiconductor device fabricationprocess to generate the IC, which may involve a multiple-step sequenceof photo lithographic and chemical processing steps during whichelectronic circuits are gradually created on a wafer made ofsemiconducting material. The circuit layout definition may be in theform of a mask which can be used in a lithographic process forgenerating an IC according to the circuit definition. Alternatively, thecircuit layout definition provided to the IC generation system 1006 maybe in the form of computer-readable code which the IC generation system1006 can use to form a suitable mask for use in generating an IC.

The different processes performed by the IC manufacturing system 1002may be implemented all in one location, e.g. by one party.Alternatively, the IC manufacturing system 1002 may be a distributedsystem such that some of the processes may be performed at differentlocations, and may be performed by different parties. For example, someof the stages of: (i) synthesising RTL code representing the ICdefinition dataset to form a gate level representation of a circuit tobe generated, (ii) generating a circuit layout based on the gate levelrepresentation, (iii) forming a mask in accordance with the circuitlayout, and (iv) fabricating an integrated circuit using the mask, maybe performed in different locations and/or by different parties.

In other examples, processing of the integrated circuit definitiondataset at an integrated circuit manufacturing system may configure thesystem to manufacture a data processing system without the IC definitiondataset being processed so as to determine a circuit layout. Forinstance, an integrated circuit definition dataset may define theconfiguration of a reconfigurable processor, such as an FPGA, and theprocessing of that dataset may configure an IC manufacturing system togenerate a reconfigurable processor having that defined configuration(e.g. by loading configuration data to the FPGA).

In some embodiments, an integrated circuit manufacturing definitiondataset, when processed in an integrated circuit manufacturing system,may cause an integrated circuit manufacturing system to generate adevice as described herein. For example, the configuration of anintegrated circuit manufacturing system in the manner described abovewith respect to FIG. 11 by an integrated circuit manufacturingdefinition dataset may cause a device as described herein to bemanufactured.

In some examples, an integrated circuit definition dataset could includesoftware which runs on hardware defined at the dataset or in combinationwith hardware defined at the dataset. In the example shown in FIG. 11 ,the IC generation system may further be configured by an integratedcircuit definition dataset to, on manufacturing an integrated circuit,load firmware onto that integrated circuit in accordance with programcode defined at the integrated circuit definition dataset or otherwiseprovide program code with the integrated circuit for use with theintegrated circuit.

The implementation of concepts set forth in this application in devices,apparatus, modules, and/or systems (as well as in methods implementedherein) may give rise to performance improvements when compared withknown implementations. The performance improvements may include one ormore of increased computational performance, reduced latency, increasedthroughput, and/or reduced power consumption. During manufacture of suchdevices, apparatus, modules, and systems (e.g. in integrated circuits)performance improvements can be traded-off against the physicalimplementation, thereby improving the method of manufacture. Forexample, a performance improvement may be traded against layout area,thereby matching the performance of a known implementation but usingless silicon. This may be done, for example, by reusing functionalblocks in a serialised fashion or sharing functional blocks betweenelements of the devices, apparatus, modules and/or systems. Conversely,concepts set forth in this application that give rise to improvements inthe physical implementation of the devices, apparatus, modules, andsystems (such as reduced silicon area) may be traded for improvedperformance. This may be done, for example, by manufacturing multipleinstances of a module within a predefined area budget.

The implementation of concepts set forth in this application in devices,apparatus, modules, and/or systems (as well as in methods implementedherein) may give rise to performance improvements when compared withknown implementations. The performance improvements may include one ormore of increased computational performance, reduced latency, increasedthroughput, and/or reduced power consumption. During manufacture of suchdevices, apparatus, modules, and systems (e.g. in integrated circuits)performance improvements can be traded-off against the physicalimplementation, thereby improving the method of manufacture. Forexample, a performance improvement may be traded against layout area,thereby matching the performance of a known implementation but usingless silicon. This may be done, for example, by reusing functionalblocks in a serialised fashion or sharing functional blocks betweenelements of the devices, apparatus, modules and/or systems. Conversely,concepts set forth in this application that give rise to improvements inthe physical implementation of the devices, apparatus, modules, andsystems (such as reduced silicon area) may be traded for improvedperformance. This may be done, for example, by manufacturing multipleinstances of a module within a predefined area budget.

The applicant hereby discloses in isolation each individual featuredescribed herein and any combination of two or more such features, tothe extent that such features or combinations are capable of beingcarried out based on the present specification as a whole in the lightof the common general knowledge of a person skilled in the art,irrespective of whether such features or combinations of features solveany problems disclosed herein. In view of the foregoing description itwill be evident to a person skilled in the art that variousmodifications may be made within the scope of the invention.

What is claimed is:
 1. A computer-implemented method of matchingfeatures identified in first and second images captured from respectivecamera viewpoints related by an epipolar geometry, each identifiedfeature being described by a local descriptor, the method comprising:using the epipolar geometry to derive an epipolar line in the secondimage corresponding to a first feature in the first image represented bya first local descriptor; transforming the coordinate system of thesecond image so as to map the epipolar line to be parallel to one of thecoordinate axes; using the epipolar line to define ageometrically-constrained region in the second image in the transformedcoordinate system corresponding to the first feature in the first image;comparing the first local descriptor with local descriptors of featuresin the second image, thereby determining respective measures ofsimilarity between the first feature in the first image and therespective features in the second image; and identifying, from themeasures of similarity between the first feature in the first image andthe respective features in the second image, a best match feature to thefirst feature.
 2. The computer-implemented method as claimed in claim 1,wherein transforming the coordinate system of the second image so as tomap the epipolar line to be parallel to one of the coordinate axescomprises rotating the coordinate system of the second image such thatthat the epipolar line is parallel to one of the coordinate axes.
 3. Thecomputer-implemented method as claimed in claim 2, wherein transformingthe coordinate system of the second image so as to map the epipolar lineto be parallel to one of the coordinate axes comprises rotating thecoordinate system of the second image such that that the epipolar lineis horizontal or vertical in the second image.
 4. Thecomputer-implemented method as claimed in claim 2, wherein rotating thecoordinate system of the second image comprises using the epipolar lineto derive a rotation matrix and applying the rotation matric to thecoordinate system of the second image.
 5. The computer-implementedmethod as claimed in claim 1, wherein the comparing the first localdescriptor with local descriptors of features in the second imagecomprises forming descriptor distances between the first localdescriptor and the respective local descriptor for each of said featuresin the second image, and the identifying best match feature comprisesidentifying the shortest descriptor distance corresponding to featuresin the geometrically-constrained region in the second image.
 6. Thecomputer-implemented method as claimed in claim 1, wherein each measureof similarity determined is a descriptor distance between the firstlocal descriptor and the local descriptor of the respective feature ofthe second image.
 7. The computer-implemented method as claimed in claim6, wherein each local descriptor is a vector representingcharacteristics of pixels of the respective feature and determining eachdescriptor distance comprises performing a vector subtraction betweenthe respective local descriptors and determining the magnitude of theresulting vector.
 8. The computer-implemented method as claimed in claim1, wherein each feature may be represented by a point and the localdescriptor of each feature is formed in dependence on pixels local tothe point in the respective image.
 9. The computer-implemented method asclaimed in claim 1, wherein the geometrically-constrained regioncomprises all pixels of the second image within a predefined distance ofthe epipolar line.
 10. The computer-implemented method as claimed inclaim 9, wherein the predefined distance is determined in dependence onone or more measures of error in the epipolar geometry.
 11. Thecomputer-implemented method as claimed in claim 9, wherein thepredefined distance is a predefined perpendicular distance to theepipolar line.
 12. The computer-implemented method as claimed in claim11, wherein the predefined perpendicular distance varies with positionin the respective image in dependence on the epipolar geometry.
 13. Thecomputer-implemented method as claimed in claim 1, wherein thegeometrically-constrained region is the epipolar line.
 14. Thecomputer-implemented method as claimed in claim 1, wherein each featurerepresents a localised set of pixels in the respective image and afeature is determined to be located in the geometrically-constrainedregion using one or more of the following determinations: determiningwhether any pixel represented by the feature lies in thegeometrically-constrained region; determining whether one or morepredetermined pixels represented by the feature lie in thegeometrically-constrained region; determining whether a predeterminedproportion of pixels represented by the feature lie in thegeometrically-constrained region.
 15. The computer-implemented method asclaimed in claim 1, wherein different cameras capture the images fromthe respective camera viewpoints or wherein the same camera at differentcamera positions captures the images from the respective cameraviewpoints.
 16. A data processing system for matching featuresidentified in first and second images captured from respective cameraviewpoints related by an epipolar geometry, each identified featurebeing described by a local descriptor, the data processing systemcomprising: a geometry unit configured to: use the epipolar geometry toderive an epipolar line in the second image corresponding to a firstfeature in the first image represented by a first local descriptor,transform the coordinate system of the second image so as to map theepipolar line to be parallel to one of the coordinate axes, and use theepipolar line to define a geometrically-constrained region in the secondimage in the transformed coordinate system corresponding to the firstfeature in the first image; a comparison unit configured to compare thefirst local descriptor with local descriptors of features in the secondimage thereby determining respective measures of similarity between thefirst feature in the first image and the respective features in thesecond image; and a match unit configured to: identify, from themeasures of similarity between the first feature in the first image andthe respective features in the second image, a best match feature to thefirst feature.
 17. A non-transitory computer readable storage mediumhaving stored thereon computer readable instructions that, when executedat a computer system, cause the computer system to perform acomputer-implemented method of matching features identified in first andsecond images captured from respective camera viewpoints related by anepipolar geometry, each identified feature being described by a localdescriptor, the method comprising: using the epipolar geometry to derivean epipolar line in the second image corresponding to a first feature inthe first image represented by a first local descriptor; transformingthe coordinate system of the second image so as to map the epipolar lineto be parallel to one of the coordinate axes; using the epipolar line todefine a geometrically-constrained region in the second image in thetransformed coordinate system corresponding to the first feature in thefirst image; comparing the first local descriptor with local descriptorsof features in the second image, thereby determining respective measuresof similarity between the first feature in the first image and therespective features in the second image; and identifying, from themeasures of similarity between the first feature in the first image andthe respective features in the second image, a best match feature to thefirst feature.